﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;

namespace _201206QuanLyBanHang.ChucNang
{
    public partial class dautu : Form
    {
        //khai báo vien
        int madautu;
        int madanhmuc;
        string tendanhmuc;
        string ghichu;

        int sodong=0;

        bool flat = false;

        //khai bao ket noi
        private string sqlStr = "select madanhmuc,a.madautu,b.tendautu,tendanhmuc,ghichu_dmdt from danhmucdautu a,dautu b where a.madautu=b.madautu order by madanhmuc,madautu,tendautu,tendanhmuc,ghichu_dmdt";
        private BLL_DMDautu db = new BLL_DMDautu();
        private DataSet ds = new DataSet();
        public dautu()
        {
            InitializeComponent();
            DataBind(sqlStr);
            db.fillCombo("select madautu,tendautu from dautu", this.cbmadautu, "tendautu", "madautu");
            
            cbmadautu.SelectedIndex = -1;
            cbmadautu.Text = "chọn mã DT";
        }

        public void DataBind(string sql)
        {

            ds = db.getDMDautu(sql);
            this.dgdautu.DataSource = ds.Tables[0];
            dgdautu.Columns[0].HeaderText = "Mã DM";
            dgdautu.Columns[1].HeaderText = "Mã DT";
            dgdautu.Columns[1].Visible = false;
            dgdautu.Columns[2].HeaderText = "Tên DT";
            dgdautu.Columns[3].HeaderText = "tên danh mục";
            dgdautu.Columns[4].HeaderText = "Ghi chú";
            dgdautu.AllowUserToAddRows = false;

            this.dgdautu.AutoResizeColumns(
              DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);
            this.dgdautu.ReadOnly = false;
            dgdautu.AllowUserToAddRows = false;
            sodong = 0;
            sodong = ds.Tables[0].Rows.Count;
            this.grdautu.Text = "Số lượng danh mục đầu tư: ";
            this.grdautu.Text = this.grdautu.Text + sodong;
        }
        //các phương thức thêm sửa xóa
        /// <summary>
        /// phương thức lưu
        /// </summary>
        private void luu()
        {

            madanhmuc = int.Parse(this.txtmadanhmuc.Text);
            madautu = int.Parse(cbmadautu.SelectedValue.ToString());
            tendanhmuc = txttendautu.Text;
            ghichu = this.txtghichu.Text;

            string err = "";
            if (!db.insertDMDautu(ref err,madanhmuc,madautu,tendanhmuc,ghichu))
            {
                MessageBox.Show(err.ToString());
            }
            DataBind(sqlStr);

        }
        /// <summary>
        /// hàm sửa thông tin loại khách hàng
        /// </summary>
        private void DMSua()
        {
            string err = "";

            madanhmuc = int.Parse(this.txtmadanhmuc.Text);
            madautu = int.Parse(cbmadautu.SelectedValue.ToString());
            tendanhmuc = txttendautu.Text;
            ghichu = this.txtghichu.Text;

            if (!db.updateDMDautu(ref err,madanhmuc,madautu,tendanhmuc,ghichu))
            {
                MessageBox.Show(err.ToString());
            }
            DataBind(sqlStr);


        }
        /// <summary>
        /// hàm xóa thông tin loai khách hàng
        /// </summary>
        private void DMXoa()
        {
            //int id;
            try
            {
                
                madanhmuc = int.Parse(this.txtmadanhmuc.Text);
            }
            catch
            {
                MessageBox.Show("Chọn khu vực để xóa");
                return;
            }

            DialogResult result;
            result = MessageBox.Show("Bạn có muốn xóa không", "Xóa dữ liệu trong danh mục khu vực", MessageBoxButtons.YesNo);
            if (result == DialogResult.Yes)
            {
                string err = "Dữ liệu không thể xóa";
                if (!db.deleteDMDautu(ref err, madanhmuc))
                    MessageBox.Show(err);
                else
                    MessageBox.Show("Đã xóa thành công");
            }
            DataBind(sqlStr);

        }

        //các hàm tiện ích khác

        /// <summary>
        /// hàm láy dữ liệu từ lưới vào text
        /// </summary>
        private void bin()
        {
            this.txtmadanhmuc.Text= dgdautu[dgdautu.Columns[0].Index, dgdautu.CurrentRow.Index].Value.ToString();
            this.cbmadautu.SelectedValue = dgdautu[dgdautu.Columns[1].Index, dgdautu.CurrentRow.Index].Value.ToString();
            this.txttendautu.Text = dgdautu[dgdautu.Columns[3].Index, dgdautu.CurrentRow.Index].Value.ToString();
            this.txtghichu.Text = dgdautu[dgdautu.Columns[4].Index, dgdautu.CurrentRow.Index].Value.ToString();
                        
            flat = true;
        }

        /// <summary>
        /// hàm lấy stt de làm mã tự động
        /// </summary>
        /// <returns></returns>
        public int laystt()
        {
            int stt = 1;

            string sqlstring = "select max(madanhmuc) from danhmucdautu";
            string err = "";
            object kq = db.layma(ref err, sqlstring);
            if (kq != System.DBNull.Value)
                stt = Convert.ToInt32(kq) + 1;
            return stt;
        }
        public string ToTitleCase(string str)
        {
            str = str.ToLower();
            char[] charArr = str.ToCharArray();
            charArr[0] = char.ToUpper(charArr[0]);
            foreach (Match m in Regex.Matches(str, @"\s\S"))
            {
                charArr[m.Index + 1] = m.Value.ToUpper().Trim()[0];
            }
            return new string(charArr);
        }

        private void BtnThem_Click(object sender, EventArgs e)
        {
            flat = false;
            //setdoituong();
            this.Btnluu.Enabled = true;
            this.BtnXoa.Enabled = true;
            this.cbmadautu.Focus();
            //reset lai control
            clear();
            this.txtmadanhmuc.Text = laystt().ToString();
        }
        private void clear()
        {
           
            this.txtmadanhmuc.Text = "";
            this.cbmadautu.SelectedIndex = -1;
            this.cbmadautu.Text = "chọn đầu tư";
            this.txttendautu.Text = "";
            this.txtghichu.Text = "";
            
           

        }

        private void txttendautu_Leave(object sender, EventArgs e)
        {
            if (this.txttendautu.Text != "")
            {
                string t = txttendautu.Text;
                txttendautu.Text = ToTitleCase(t);
            }
        }

        private void dgdautu_Click(object sender, EventArgs e)
        {
            try
            {

                this.dgdautu.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
                this.dgdautu.BeginEdit(false);
                this.dgdautu.CurrentRow.Selected = true;
                this.bin();
                this.Btnluu.Enabled = true;
                this.BtnXoa.Enabled = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void BtnXoa_Click(object sender, EventArgs e)
        {
            DMXoa();
            clear();
            this.Btnluu.Enabled = false;
            this.BtnXoa.Enabled = false;
        }

        private void Btnluu_Click(object sender, EventArgs e)
        {
            this.Btnluu.Enabled = false;
            this.BtnXoa.Enabled = false;
            if (flat)
            {
                DMSua();
                clear();
                MessageBox.Show("chỉnh sửa thành công");
            }
            else
            {
                luu();
                clear();
                MessageBox.Show("Lưu thành công");
            }
        }

       

    }
}
